<?php
namespace App\Repository\Contracts;

use App\Model\Goods;

/**
 * @Author:: HuangYin
 * @DateTime: 2017-01-16 13:32
 *
 * @Description: 商品
 */
interface GoodsInterface
{
    /**
     * 创建
     *
     * @param array $data
     * @return mixed
     */
    public function created(array $data);

    /**
     * 详情
     *
     * @param $id
     * @return mixed
     */
    public function detail($id);

    /**
     * 详情 By
     *
     * @param array $map
     * @return mixed
     */
    public function detailBy($map = []);

    /**
     * 列表
     *
     * @param       $limit
     * @param       $page
     * @param array $map
     * @return mixed
     */
    public function lists($limit, $page, $map = []);

    /**
     * 更新
     *
     * @param       $id
     * @param array $data
     * @return mixed
     */
    public function updated($id, array $data);

    /**
     * 更新状态
     *
     * @param $id
     * @param int $status
     * @return mixed
     */
    public function updateStatus($id, $status = Goods::OFF_SHELVES);

    /**
     * 更新库存
     *
     * @param array $data
     * @return mixed
     */
    public function updateInventory(array $data);

    /**
     * 返回最大 ID
     *
     * @return mixed
     */
    public function findIdForFirst();
}